package com.xjh.basestudy.leetcode.understand;

import org.junit.Test;

import java.util.*;

public class TestContainerCreate {
    @Test
    public void test01() {
        // 快速创建一个集合类型
        List<String> lists = Arrays.asList("1", "2", "3");
        // 数组静态初始化
        String[] array1 = {"马超", "马云", "关羽", "刘备", "张飞"};
        String[] array2 = new String[]{"黄渤", "张艺兴", "孙红雷", "小猪", "牙哥", "黄磊"};

        //        创建一个空数组（创建时需要定义长度）（动态初始化）
        String[] arrays = new String[lists.size()];
        //        通过循环取出集合中的值并赋值给数组
        for (int i = 0; i < lists.size(); i++) {
            arrays[i] = lists.get(i);
        }
        //        输出数组中的元素
        //        数组作为参数  Object[] columnLabel   ，传入一个参数：new String[]{"Field"}，
        System.out.println(Arrays.toString(arrays));
    }

    /*
    *
    Stack的基本使用(先进后出：瓶子)
    初始化
    Stack stack=new Stack
    判断是否为空
    stack.empty()
    取栈顶值（不出栈）
    stack.peek()
    进栈
    stack.push(Object);
    出栈
    stack.pop();
*/
    @Test
    public void test02() {
        Stack stack = new Stack();
        // 1.empty()栈是否为空
        System.out.println(stack.empty());
        // 2.peek()栈顶值
        // 3.进栈push()
        stack.push(new Integer(1));
        stack.push("b");
        System.out.println(stack.peek());
        // 4.pop()出栈（后进入的b优先出栈）
        stack.pop();
        System.out.println("当前栈中元素===" + stack.peek());

    }

    /*
    * 队列：漏斗（先进先出）
    *   压入元素(添加)：add()、offer()
        相同：未超出容量，从队尾压入元素，返回压入的那个元素。
        区别：在超出容量时，add()方法会对抛出异常，offer()返回false

        弹出元素(删除)：remove()、poll()
        相同：容量大于0的时候，删除并返回队头被删除的那个元素。
        区别：在容量为0的时候，remove()会抛出异常，poll()返回false

        获取队头元素(不删除)：element()、peek()
        相同：容量大于0的时候，都返回队头元素。但是不删除。
        区别：容量为0的时候，element()会抛出异常，peek()返回null。
    * */
    @Test
    public void test03() {
        Queue<String> queue = new LinkedList();
        queue.offer("元素A");
        queue.offer("元素B");
        queue.offer("元素C");
        queue.offer("元素D");
        queue.offer("元素E");
        while (queue.size() > 0) {
            String element = queue.poll();
            System.out.println(element);
        }


    }


}
